1. Field of the Invention
Embodiments of the present invention relate to the field of data storage systems. More particularly, embodiments of the present invention relate generally to the expansion of an existing data storage system into a plurality of virtual data storage systems.
2. Related Art
Data storage systems increasingly are becoming larger due to advances in technology. As a result, individual units of storage, (e.g., data disks) are increasing. However, storage systems designed for the smaller capacity storage units of the past many times are unable to efficiently use the increases in storage capacity.
For example, in the past, the internal operating code of some data storage systems recognized the organization of data disks into one or two volumes. As such, each of the volumes would correspond to a logical unit (LUN) of data storage, thereby creating a one to one relationship between a volume and a LUN. Typically, the LUN would be accessed by a dedicated host application to minimize the risk of losing data when reading and writing data to a LUN.
To increase the capacity of data storage, a finite number of LUNs could be coupled together in the data storage network. Various data storage networks could be coupled to provide a system area network (SAN) with data storage capabilities. In that way, a host application would not be limited to the size of a LUN for storing data within a data storage network. Also, other host applications could be assigned other individual LUNs within a data storage network for access and use.
Frequently, as LUN sizes have increased, a host application does not need to utilize the entire storage space of one particular LUN for a specific feature of the application. For example, the operating code, of the host application could be stored on portions of one LUN. Because of the sensitivity of the operating code, to maintain data security, that particular LUN would be dedicated to that particular host application. As such, other host applications within a particular data storage network would be denied access to that LUN so that they could not interfere with the operating code of the host application, data base of the host application, etc.
In that way, the host application itself could use the remaining portions of the LUN for data storage. The host application itself would partition out the LUN for storing various categories of data. Still, a particular host application may not utilize the entire storage space of a LUN, and, as such, that space could be available to other host applications. However, access by other host applications into specific areas of the LUN is not possible without coordinating software. Unfortunately, the internal operating code of a host application typically does not allow for any coordinating software that controls and monitors data control networks in support of other host applications.
To further compound the waste of useable storage space within a LUN, because of the limitations of the internal operating code of the data storage system as originally configured, each of the LUNs within a data storage network would necessarily be tied to a particular host application in order to protect data security. Allowing more than one host application to write to the same storage space without coordinating software will cause data loss. The internal operating code previously was unable to control access to various parts of the LUN. As such, if one part of the LUN was tightly controlled, then all parts of the LUN would have the same limitation. As a result, because of the finite nature of the number of LUNs that could be coupled within a single data storage network, there would be a finite number of host applications that could be supported by the data storage network.
One previous solution for controlling access to various parts of a volume of the data storage network associated with a LUN would be to partition out the volume into numerous smaller LUNs. In this way, to take advantage of the increasing volume sizes, multiple LUNs would be created from the same physical volume of data storage. However, this method requires the burdensome task of rewriting the internal operating code to recognize the increased numbers of LUNs within the data storage network. The codes needing to be rewritten include, but are not limited to the internal transfer code that coordinates the transfer of data, the monitoring code that monitors failures within the data storage system, and the driver code for coordinating communication between the data storage network and the host application.